A certificate is a digitally signed statement that contains information about an entity and the entity's public key. A handshake is a dialogue between two entities (e.g., a user and a computer, a computer and another computer, or a program and another program) used for identification and authentication of the entities to one another. Mapping the certificate to a user account or a security principal, pursuant to a handshake, often fails if the certificate does not provide enough information for identifying the user's identity or realm.
An example of a service that uses certificates and handshakes is Secure Channel. Secure Channel, also known as Schannel, is the name of a security support provider (SSP) under a security service provider interface (SSPD) that implements SSL/TLS (secure sockets layer/transport layer security) protocols. SSPI contains a number of security protocol implementations. The Schannel SSP plugs in under SSPI. Also, a Kerberos SSP plugs in under SSPI. Schannel is primarily used for Internet applications that require enhanced security for Hypertext Transfer Protocol (HTTP) communications such as through SSL or TLS. Schannel protocols, such as TLS or SSL for example, require credentials to authenticate servers and, optionally, clients. Server authentication, where the server provides proof of its identity to the client, is required by the Schannel security protocols. Client authentication may be requested by the server at any time.
Schannel credentials may be X.509 certificates. Public and private key information from certificates is used to authenticate the server and, optionally, the client. These keys are also used to provide message integrity while the client and the server exchange the information required to generate and exchange session keys.
Schannel is the module that implements SSL and TLS, a client/server protocol that is used to establish user authentication on the server. This authentication leads to a token that can be used by the server for client impersonation. Schannel uses certificates to authenticate the user (mapping the certificate to a user account).
Once the user (client) identifies himself to the server, the server must locate the authority (for the user's account). This is typically accomplished through the use of the user principal name (UPN) extension in the X.509 certificate. However, if the UPN is absent or if the UPN does not provide enough information for identifying the user's realm (in cross forest scenarios), mapping the certificate to a user account (e.g., an Active Directory user account) will fail.
A similar problem exists for mapping the certificate to user accounts by Kerberos using S4U.